# -*- coding: utf-8; mode: snippet -*-
# name: binary search
# key: algorithm
# contributor: Chen Bin <chenbin DOT sh AT gmail>
# --
function binarySearch(nums, target) {
  let left = 0, right = nums.length -1;

  while(left <= right) {
    let mid = left + Math.floor((right - left) / 2);
    if (nums[mid] == target) {
      return mid;
    } else if (nums[mid] < target) {
      left = mid + 1;
    } else if (nums[mid] > target) {
      right = mid -1;
    }
  }
  return -1;
}